from __future__ import annotations
from extensions import db
from datetime import datetime
from sqlalchemy.orm import Mapped, mapped_column, relationship
from sqlalchemy import func  # 新增导入

class OrderStaff(db.Model):
    __tablename__ = 'order_staff'

    # 自增主键ID，系统内部使用的唯一标识
    id: Mapped[int] = mapped_column(db.Integer, primary_key=True)
    # 订单ID，关联orders表，标识所属的订单
    order_id: Mapped[str] = mapped_column(db.String(36), nullable=False)
    # 员工ID，关联users表，标识提供服务的员工
    staff_id: Mapped[str] = mapped_column(db.String(36), nullable=False)
    # 员工角色，标识员工在订单中的角色，如：理发师、洗头师
    staff_role: Mapped[str] = mapped_column(db.Enum('理发师', '洗头师', name='staff_role_enum'), nullable=False)
    # 记录创建时间，关系记录首次创建的时间戳
    created_at = db.Column(
        db.DateTime,
        server_default=func.now(),  # 优先使用数据库当前时间
        default=datetime.utcnow     # 使用Python系统时间作为后备
    )
    # 记录最后更新时间，关系记录最后一次修改的时间戳
    updated_at = db.Column(
        db.DateTime,
        server_default=func.now(),  # 优先使用数据库当前时间
        default=datetime.utcnow,    # 使用Python系统时间作为后备
        onupdate=datetime.utcnow    # 更新时使用Python系统时间
    )

    def __init__(self, order_id: str, staff_id: str, staff_role: str):
        self.order_id = order_id
        self.staff_id = staff_id
        self.staff_role = staff_role

    def __repr__(self):
        return f'<OrderStaff {self.id}>'